package com.hu.juc.day01.T2;

import com.hu.juc.day01.T2.ShareResource;

/**
 * 多线程之间按顺序调用，实现A->B->C
 * 三个线程启动， 要求如下:
 *
 * AA打印15次，BB打印10次, CC打印15次
 * 接着
 * A打印15次，BB打印10次, CC打印15次
 * ......来10轮
 *
 * 1.高聚低合前提下，线程操作资源类
 * 2.判断/干活/通知
 * 3.多线程交互中，必须要防止多线程的虚假唤醒，也即(判断只用while，不能用if)
 * 4.注意标志位的修改和定位
 */
public class ThreadOrderAccess {
    public static void main(String[] args) {
        ShareResource shareResource = new ShareResource();
        new Thread(() -> {
            shareResource.printA();
        }, "A").start();

        new Thread(() -> {
            shareResource.printB();
        }, "B").start();

        new Thread(() -> {
            shareResource.printC();
        }, "C").start();
    }
}
